Without clear Definition of Done (DoD), it is hard to produce the production level code. You should clearly define the Definition of Done (DoD) before starting a project. Preparing a single definition of done that suits every situation is impossible. Each team should collaborate and come up with the definition that suits its unique environment.